home *** CD-ROM | disk | FTP | other *** search
/ Gigantic Games 2 / Gigantic Games 2.iso / pc / _a_ / attacks / sources / boards.mod < prev    next >
Text File  |  1994-12-23  |  3KB  |  102 lines

  1. IMPLEMENTATION MODULE boards;
  2.  
  3. (*$R-V-*) (* range checking OFF, overflow checking OFF *)
  4.  
  5. (*   This module is a list of boards for the game.  After thinking about  *)
  6. (* it for a while, I decided to use a list of setups rather than have the *)
  7. (* possibilty of a random setup that was impossible to play.              *)
  8.  
  9. FROM header
  10.   IMPORT   boardrange, boardsize, boardtype, squaretype;
  11.  
  12.  
  13. (**************************************************************************)
  14. PROCEDURE PrepBoard (VAR aboard : boardtype);
  15.  
  16. (*   This procedure fills in a board with all emtpy squares and then puts *)
  17. (* red and blue squares in the opposing corners.                          *)
  18.  
  19.  
  20. VAR
  21.   i, j : boardrange;
  22.  
  23. BEGIN
  24.   FOR j := 1 TO boardsize DO          (* first, make 'em all empty *)
  25.      FOR i := 1 TO boardsize DO
  26.         aboard[i,j] := empty;
  27.      END;
  28.   END;
  29.  
  30.   FOR i := -1 TO 9 DO                 (* Now, put in outer blocks   *)
  31.      aboard[i,-1] := block;
  32.      aboard[i, 0] := block;
  33.      aboard[i, 8] := block;
  34.      aboard[i, 9] := block;
  35.      aboard[-1, i] := block;
  36.      aboard[0, i] := block;
  37.      aboard[8, i] := block;
  38.      aboard[9, i] := block;
  39.      END;
  40.  
  41.   aboard[1,1] := red;          (* put the players on opp corners *)
  42.   aboard[7,7] := red;
  43.   aboard[1,7] := blue;
  44.   aboard[7,1] := blue;
  45.  
  46. END PrepBoard;
  47.  
  48. (**************************************************************************)
  49. (*                              *)
  50. (*      MAIN  (initialization)  *)
  51. (*                              *)
  52. (********************************)
  53.  
  54. VAR
  55.   i : boardrange;
  56.  
  57. BEGIN
  58.   PrepBoard(setup0);
  59.  
  60.   PrepBoard(setup1);
  61.   setup1 [1,4] := block;             (* board 1 *)
  62.   setup1 [7,4] := block;
  63.   setup1 [4,1] := block;
  64.   setup1 [4,7] := block;
  65.   setup1 [4,4] := block;
  66.  
  67.   PrepBoard(setup2);
  68.   setup2 [1,4] := block;
  69.   setup2 [2,4] := block;
  70.   setup2 [3,4] := block;
  71.   setup2 [5,4] := block;
  72.   setup2 [6,4] := block;
  73.   setup2 [7,4] := block;
  74.   setup2 [4,1] := block;
  75.   setup2 [4,2] := block;
  76.   setup2 [4,3] := block;
  77.   setup2 [4,5] := block;
  78.   setup2 [4,6] := block;
  79.   setup2 [4,7] := block;
  80.  
  81.   PrepBoard(setup3);         (* This is one of my own *)
  82.   setup3 [2,1] := block;
  83.   setup3 [1,2] := block;
  84.   setup3 [6,1] := block;
  85.   setup3 [1,6] := block;
  86.   setup3 [7,2] := block;
  87.   setup3 [2,7] := block;
  88.   setup3 [7,6] := block;
  89.   setup3 [6,7] := block;
  90.   setup3 [4,3] := block;
  91.   setup3 [3,4] := block;
  92.   setup3 [5,4] := block;
  93.   setup3 [4,5] := block;
  94.  
  95.   PrepBoard(setup4);         (* This is one of my own *)
  96.   FOR i := 2 TO 6 DO
  97.      setup4 [4,i] := block;
  98.      setup4 [i,4] := block;
  99.      END;
  100.  
  101. END boards.
  102.